#!/bin/bash

###############################################
# 带宽测试脚本
# 名称：test_bandwidth.sh
# 版本：1.0
# 作者：YourName
# 日期：2025-03-22
# 描述：
#   使用 iperf3 或 speedtest-cli 进行带宽和网络延迟测试。
#   自动检测并安装缺失的工具。
#   提供测试日志，支持手动选择工具和查看帮助信息。
###############################################

LOG_FILE="$(dirname "$0")/bandwidth_test.log"

# 显示脚本标题
show_title() {
    echo "=============================="
    echo " 带宽测试脚本 "
    echo "=============================="
}

# 显示帮助信息
show_help() {
    echo "用法： ./test_bandwidth.sh [选项]"
    echo "选项："
    echo "  -h, --help         显示帮助信息"
    echo "  -t, --tool TOOL    选择测试工具 (iperf3 或 speedtest)"
    echo "示例： ./test_bandwidth.sh -t iperf3"
}

# 检查并安装依赖
check_install() {
    local tool="$1"
    if ! command -v "$tool" &> /dev/null; then
        echo "工具 $tool 未安装，正在安装..."
        sudo apt-get update && sudo apt-get install -y "$tool"
    fi
}

# 执行带宽测试
run_bandwidth_test() {
    local tool="$1"
    echo "使用 $tool 进行带宽测试..."
    if [ "$tool" == "iperf3" ]; then
        check_install "iperf3"
        iperf3 -c speedtest.server.com | tee -a "$LOG_FILE"
    elif [ "$tool" == "speedtest" ]; then
        check_install "speedtest-cli"
        speedtest | tee -a "$LOG_FILE"
    else
        echo "未知工具：$tool"
        exit 1
    fi
}

# 主程序
main() {
    show_title
    local tool="speedtest"
    if [[ "$1" == "-h" || "$1" == "--help" ]]; then
        show_help
        exit 0
    elif [[ "$1" == "-t" || "$1" == "--tool" ]]; then
        tool="$2"
    fi
    run_bandwidth_test "$tool"
}

main "$@"
